Computer-aided design (CAD) software allows a user to construct and manipulate models of complex three-dimensional (3D) designs of objects. A number of different modeling techniques can be used to express an object's design. These techniques include solid modeling, wire-frame modeling, and parametric modeling. Solid modeling techniques provide for a topology and surface connectivity-based modeling paradigm. Solid modeling techniques support modeling of 3D objects as collections of interconnected edges, faces, and surfaces. Wire-frame modeling techniques, on the other hand, can be used to represent a model as a simple line drawing. Wire-frame modeling techniques may help provide for computer-efficient modeling of objects. Parametric solid modeling techniques allow a model designer to define parameters interconnecting different components of a model. Parametric modeling can facilitate propagating changes among components. CAD systems may combine these, and other, modeling techniques. For example, solid modeling and parametric modeling can be combined in CAD systems supporting parametric solid modeling.
Parametric solid models are commonly used in 3D mechanical design processes. In a 3D design process, a designer may model an object from a collection of parts. Typically, a designer constructs the parts (or obtains them from a library of pre-constructed parts) and then brings those parts together in an assembly. An assembly may contain other assemblies, referred to as subassemblies, as well as solid model parts. The solid model parts and subassemblies are referred to as the assembly's components. As a design progresses, the designer re-arranges and re-groups components, thus restructuring the assembly.
As a designer models an object, the designer may find it necessary to restructure portions of a model by, for example, inserting, deleting or rearranging assemblies. When a designer restructures an assembly, the designer may remove components from the assembly, create a new assembly in which those components are rearranged independent of the remaining original assembly, and then add the new assembly to the original remaining assembly to create the restructured model. Other CAD systems may restructure assemblies by modifying software pointers to re-order components. Still other restructuring methods may be used. In some cases, conventional restructuring methods can cause a loss of parametric references and other linkages between assembly components. Such losses can inadvertently alter characteristics of a model object, thus destroying design intent previously expressed by the designer. Manual restoration of design intent (i.e., through model repair to reconstruct references and component linkages) may be time consuming and complex (particularly where a complex assembly with numerous damaged references must be repaired).
These problems may exist with respect to positional relationships. A positional relationship is a connectivity relationship between two or more components that expresses geometric properties of component interconnections. When a designer transforms a component (e.g., translates or rotates), a CAD system can recognize that an equivalent transformation is to be applied to other positionally related components. However, in some conventional CAD systems, if a designer restructures an assembly by moving a component to a different subassembly, positional relationships (as well as other connectivity relationships) can be damaged or lost. This may occur when components belong to different branches of a hierarchical data structure defining a modeled object.
When one component in a positional relationship is moved to a different location in a data structure hierarchy, positional relationships may be broken due to changes in the hierarchical relationships of components in a model's component hierarchy. The positional relationships may be deleted or suppressed when one of the components involved is deleted. Thus, a design engineer may need to manually re-establish positional relationships by examining all components in the data structure hierarchy and searching for every positional relationship that would be modified. After deleting and reinserting the relationship, the designer may recreate those positional relationships. This process, which may involve further steps such as re-inputting data describing the relationship, can require a substantial effort. Alternatively, the designer can create the relationships after the design is complete.
Another type of component relationship is an update relationship. An update relationship creates a dependency between a dimension in one component and a dimension in another component. After a restructuring operation, update components may be moved to different subassemblies.
As is the case with positioning operations, update relationships can be severed when the assembly is restructured. A design engineer may need to tediously re-establish update relationships by manually disconnecting broken relationships between components and redefining those relationships between the components. For example, a designer may delete a former relationship between components by selecting the component and issuing a command to disconnect the relationship. The designer may then re-select the (now repositioned) component and issue a command to re-establish their relationship. Alternatively, as with positional relationships, the designer can create the relationships after the design is complete.
Advantages may be obtained by improved computer aided design and modeling techniques that permit relationships in and between models and their components to be automatically maintained during changes to the model and its components.